// Res 用户信息
export interface ResUserInfo {
  permissions: string[];
  roles: [];
  user: UserInfo;
}
export interface UserInfo {
  /** 创建人 */
  createBy: string | null;
  /** 创建时间 */
  createTime: string | null;
  /** 更新人 */
  updateBy: string | null;
  /** 更新时间 */
  updateTime: string | null;
  /** 备注信息 */
  remark: string | null;
  /** 微信联合ID */
  wechatUnionId: string | null;
  /** 用户ID */
  userId: number;
  /** 用户UUID */
  userUuid: string;
  /** 部门ID */
  deptId: number | null;
  /** 用户名 */
  userName: string;
  /** 用户昵称 */
  nickName: string;
  /** 用户类型 */
  userType: string | null;
  /** 邮箱地址 */
  email: string;
  /** 手机号码 */
  phonenumber: string;
  /** 性别 */
  sex: string | null;
  /** 头像URL */
  avatar: string;
  /** 密码 */
  password: string | null;
  /** 账号状态 */
  status: string | null;
  /** 删除标志 */
  delFlag: string | null;
  /** 最后登录IP */
  loginIp: string | null;
  /** 最后登录时间 */
  loginDate: string | null;
  /** 社交链接 */
  socialLink: string | null;
  /** 所属部门信息 */
  dept: string;
  /** 角色列表 */
  roles: string[];
  /** 角色ID列表 */
  roleIds: number[] | null;
  /** 岗位ID列表 */
  postIds: number[] | null;
  /** 角色ID */
  roleId: number | null;
  /** 是否是管理员 */
  admin: boolean;
}

// Res原生图信息
export interface ResOriginalImage extends OriginalImage {}

// Res卡片详情信息
export interface ResCardDetail extends BaseCardType {
  aidImageList: ThumbnailInfo[]; // ai生成图信息
  cardLabelList: {
    id: string;
    labelName: string;
    labelType: string;
  }[];
  imageList: string[];
}

// 缩略图信息
export interface ThumbnailInfo {
  imageId: number;
  imageUuid: string;
  userUuid: string;
  paramId: number | null;
  delFlag: string;
  createTime: string;
  updateTime: string;
  width: number | null;
  height: number | null;
  thumbnailUri: string;
  originalUri: string | null; //水印原图链接
  originalUriExpiredAt: string | null; // 链接过期时间
}

/**
 * TODO: 基础接口，抽出
 */

// 卡片基本信息
export interface BaseCardType {
  cardId: string; // 卡片id
  userUuid: string; // 用户uuid
  userName: string; // 用户名
  avatar: string; // 头像地址
  cardName: string; // 卡片名称
  cardDesc: string; // 卡片描述
  cardStatus: string; // 卡片状态
  createVariable?: string; // 卡片生成参数,JSON字符串
}

// 原生图信息
export interface OriginalImage {
  createTime: string;
  delFlag: string;
  height: number;
  imageId: number;
  /** 图片UUID */
  imageUuid: string;
  /** 原图 */
  originalUri: string;
  /** 原图URI过期时间 */
  originalUriExpiredAt: string;
  paramId: number;
  /** 缩略图 */
  thumbnailUri: string;
  /** DAE材质图URI（仅DAE文件存在） */
  daeMaterialUri?: string;
  updateTime: string;
  userUuid: string;
  width: number;
  format?: string;
}

// TODO:  卡片生成参数信息
export interface VariableCreated {
  [key: string]: any;
}
